# Copyright 2024 The Pigweed Authors
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may not
# use this file except in compliance with the License. You may obtain a copy of
# the License at
#
#     https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations under
# the License.

load("@bazel_skylib//rules:common_settings.bzl", "string_flag")

package(default_visibility = ["//visibility:public"])

string_flag(
    name = "cxx_standard",
    build_setting_default = "20",
    values = [
        "17",
        "20",
    ],
)

config_setting(
    name = "c++17_enabled",
    flag_values = {
        ":cxx_standard": "17",
    },
)

config_setting(
    name = "c++20_enabled",
    flag_values = {
        ":cxx_standard": "20",
    },
)

# TODO: https://pwbug.dev/394378542 - This is temporarily silenced to avoid the
# hassle of adding rules_shell to Pigweed's Bazel dependencies.
# buildifier: disable=native-sh-binary
sh_binary(
    name = "generate_module_map",
    srcs = ["generate_module_map.sh"],
)
